﻿# Called once a month

shogunate_ai_monthly_effect = {

	# Genius or big enough
	every_ruler = {
		limit = {
			shogunate_ai_monthly_check_trigger = yes
			shogunate_ai_can_establish_shogunate_trigger = no
		}
		shogunate_ai_sengoku_invasion_effect = yes
	}

}


# Called once a year

shogunate_ai_yearly_effect = {

	# Intelligent or ambitious
	if = {
		limit = {
			shogunate_ai_monthly_check_trigger = no
			shogunate_ai_yearly_check_trigger = yes
			shogunate_ai_can_establish_shogunate_trigger = no
		}
		shogunate_ai_sengoku_invasion_effect = yes
	}

}


# Called once three years

shogunate_ai_three_year_effect = {

	# Common
	if = {
		limit = {
			shogunate_ai_monthly_check_trigger = no
			shogunate_ai_yearly_check_trigger = no
			shogunate_ai_can_establish_shogunate_trigger = no
		}
		shogunate_ai_sengoku_invasion_effect = yes
	}

}


# AI for Late Sengoku period

shogunate_ai_sengoku_invasion_effect = {

	if = {
		limit = {
			is_ai = yes
			is_landed = yes
			OR = {
				government_has_flag = government_is_feudal
				government_has_flag = government_is_administrative
			}
			any_character_struggle = {
				has_struggle_phase_parameter = shogunate_unlocks_sengoku_invasion_casus_belli
			}
			is_available_adult = yes
			is_at_war = no
			gold >= 0
		}
		save_scope_as = attacker

		# claim CB against liege
		random_liege_or_above = {
			limit = {
				save_temporary_scope_as = temporary_defender
				scope:attacker = {
					any_claim = {
						pressed = yes
						holder ?= scope:temporary_defender
					}
					NOT = { this = scope:temporary_defender }
					NOT = { is_allied_to = scope:temporary_defender }
					NOT = { has_truce = scope:temporary_defender }
				}
			}
			weight = {
				base = 0
				modifier = {
					always = yes
					add = shogunate_ai_start_war_value
				}
			}
			save_scope_as = defender
		}
		if = {
			limit = {
				scope:defender ?= {
					shogunate_ai_start_war_value >= shogunate_ai_can_start_war_value
				}
			}
			random_claim = {
				pressed = yes
				limit = {
					holder ?= scope:defender
				}
				save_scope_as = target_title
			}
			if = {
				limit = {
					exists = scope:target_title
					scope:attacker ?= {
						has_claim_on = scope:target_title
					}
					scope:defender ?= {
						has_title = scope:target_title
					}
				}
				start_war = {
					casus_belli = claim_cb
					claimant = scope:attacker
					target = scope:defender
					target_title = scope:target_title
				}
			}
		}

		# Unify Japan CB
		else = {
			random_neighboring_top_liege_realm_owner = {
				limit = {
					save_temporary_scope_as = temporary_defender
					scope:attacker = {
						NOT = { this = scope:temporary_defender }
						NOT = { is_allied_to = scope:temporary_defender }
						NOT = { has_truce = scope:temporary_defender }
					}
				}
				weight = {
					base = 0
					modifier = {
						always = yes
						add = shogunate_ai_start_war_value
					}
				}
				save_scope_as = defender
			}
			if = {
				limit = {
					scope:defender ?= {
						shogunate_ai_start_war_value >= shogunate_ai_can_start_war_value
					}
				}
				if = {
					limit = {
						scope:attacker.highest_held_title_tier >= tier_kingdom
						scope:defender.highest_held_title_tier >= tier_kingdom
					}
					scope:defender = {
						random_realm_de_jure_kingdom = {
							limit = {
								save_temporary_scope_as = temporary_title
								is_neighbor_to_realm = scope:attacker
								scope:defender = {
									any_sub_realm_county = {
										any_this_title_or_de_jure_above = {
											this = scope:temporary_title
										}
										is_neighbor_to_realm = scope:attacker
										shogunate_ai_geographical_neighbor_county_trigger = yes
									}
								}
							}
							weight = {
								base = 0
								modifier = {
									always = yes
									add = shogunate_ai_war_target_value
								}
								modifier = {
									this = title:k_nmih_northern_kinai
									factor = shogunate_ai_medium_positive_weight
								}
							}
							save_scope_as = target_title
						}
					}
					if = {
						limit = {
							scope:target_title ?= {
								is_neighbor_to_realm = scope:attacker
							}
							scope:defender = {
								any_sub_realm_county = {
									any_this_title_or_de_jure_above = {
										this = scope:target_title
									}
									is_neighbor_to_realm = scope:attacker
									shogunate_ai_geographical_neighbor_county_trigger = yes
								}
							}
							prestige >= shogunate_ai_sengoku_invasion_war_cost_value
						}
						# if target title is a single county, use county tier CB (avoid big win by small conflict)
						if = {
							limit = {
								scope:target_title = {
									shogunate_ai_war_target_county_num = 1
								}
							}
							scope:target_title = {
								random_in_de_jure_hierarchy = {
									limit = {
										tier = tier_county
										holder.top_liege = scope:defender
									}
									save_scope_as = new_target_title
								}
							}
							start_war = {
								casus_belli = sengoku_invasion_war_county
								target = scope:defender
								target_title = scope:new_target_title
							}
						}
						else = {
							start_war = {
								casus_belli = sengoku_invasion_war_kingdom
								target = scope:defender
								target_title = scope:target_title
							}
						}
					}
				}
				else_if = {
					limit = {
						scope:attacker.highest_held_title_tier >= tier_duchy
						scope:defender.highest_held_title_tier >= tier_duchy
					}
					scope:defender = {
						random_realm_de_jure_duchy = {
							limit = {
								save_temporary_scope_as = temporary_title
								is_neighbor_to_realm = scope:attacker
								scope:defender = {
									any_sub_realm_county = {
										any_this_title_or_de_jure_above = {
											this = scope:temporary_title
										}
										is_neighbor_to_realm = scope:attacker
										shogunate_ai_geographical_neighbor_county_trigger = yes
									}
								}
							}
							weight = {
								base = 0
								modifier = {
									always = yes
									add = shogunate_ai_war_target_value
								}
								modifier = {
									this = title:d_nmih_yamashiro
									factor = shogunate_ai_medium_positive_weight
								}
							}
							save_scope_as = target_title
						}
					}
					if = {
						limit = {
							scope:target_title ?= {
								is_neighbor_to_realm = scope:attacker
							}
							scope:defender = {
								any_sub_realm_county = {
									any_this_title_or_de_jure_above = {
										this = scope:target_title
									}
									is_neighbor_to_realm = scope:attacker
									shogunate_ai_geographical_neighbor_county_trigger = yes
								}
							}
							prestige >= shogunate_ai_sengoku_invasion_war_cost_value
						}
						# if target title is a single county, use county tier CB (avoid big win by small conflict)
						if = {
							limit = {
								scope:target_title = {
									shogunate_ai_war_target_county_num = 1
								}
							}
							scope:target_title = {
								random_in_de_jure_hierarchy = {
									limit = {
										tier = tier_county
										holder.top_liege = scope:defender
									}
									save_scope_as = new_target_title
								}
							}
							start_war = {
								casus_belli = sengoku_invasion_war_county
								target = scope:defender
								target_title = scope:new_target_title
							}
						}
						else = {
							start_war = {
								casus_belli = sengoku_invasion_war_duchy
								target = scope:defender
								target_title = scope:target_title
							}
						}
					}
				}
				else_if = {
					limit = {
						scope:attacker.highest_held_title_tier >= tier_county
						scope:defender.highest_held_title_tier >= tier_county
					}
					scope:defender = {
						random_realm_county = {
							limit = {
								is_neighbor_to_realm = scope:attacker
								shogunate_ai_geographical_neighbor_county_trigger = yes
							}
							weight = {
								base = 0
								modifier = {
									always = yes
									add = shogunate_ai_war_target_value
								}
								modifier = {
									any_this_title_or_de_jure_above = {
										this = title:d_nmih_yamashiro
									}
									factor = shogunate_ai_medium_positive_weight
								}
							}
							save_scope_as = target_title
						}
					}
					if = {
						limit = {
							scope:target_title ?= {
								is_neighbor_to_realm = scope:attacker
								shogunate_ai_geographical_neighbor_county_trigger = yes
							}
							prestige >= shogunate_ai_sengoku_invasion_war_cost_value
						}
						start_war = {
							casus_belli = sengoku_invasion_war_county
							target = scope:defender
							target_title = scope:target_title
						}
					}
				}
			}
		}
	}

}
